{"componentChunkName":"component---src-templates-blog-post-js","path":"/Test/[Angular]_unit_test/","result":{"data":{"site":{"siteMetadata":{"title":"JULog","author":"[Ju Chan Hwang]","siteUrl":"https://julog.netlify.app","comment":{"disqusShortName":"","utterances":"JuChanHwang/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"6fea899a-d8c3-50b7-b91a-dd76277d795f","excerpt":"캐시 추가 충전 버튼 테스트하기 아래의 코드는 캐시 추가 충전 버튼에 대한 테스트 코드이다. krw-cash-calculator.spec.ts 총 4개의 테스트를 작성해보았다. 충전금을 설정하는 setAmount 테스트, 충전금을 추가하기 위한 plus 테스트, 빼기 위한 minus…","html":"<h2 id=\"캐시-추가-충전-버튼-테스트하기\" style=\"position:relative;\"><a href=\"#%EC%BA%90%EC%8B%9C-%EC%B6%94%EA%B0%80-%EC%B6%A9%EC%A0%84-%EB%B2%84%ED%8A%BC-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0\" aria-label=\"캐시 추가 충전 버튼 테스트하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>캐시 추가 충전 버튼 테스트하기</h2>\n<img width=\"400\" alt=\"스크린샷 2020-09-28 오후 11 06 46\" src=\"https://user-images.githubusercontent.com/36187948/94442838-60e6b800-01df-11eb-9814-acdc510e62bd.png\">\n<p>아래의 코드는 캐시 추가 충전 버튼에 대한 테스트 코드이다.</p>\n<blockquote>\n<p>krw-cash-calculator.spec.ts</p>\n</blockquote>\n<div class=\"gatsby-highlight\" data-language=\"ts\"><pre class=\"language-ts\"><code class=\"language-ts\"><span class=\"token function\">describe</span><span class=\"token punctuation\">(</span><span class=\"token string\">'KRWCashCalculator'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> calculator<span class=\"token operator\">:</span> ICashCalculator<span class=\"token punctuation\">;</span>\n  <span class=\"token function\">beforeEach</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    calculator <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">KRWCashCalculator</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">// setAmount 함수 테스트</span>\n  <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">10000</span><span class=\"token punctuation\">,</span> amount<span class=\"token operator\">:</span> <span class=\"token number\">10000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">100000</span><span class=\"token punctuation\">,</span> amount<span class=\"token operator\">:</span> <span class=\"token number\">100000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> initialAmount<span class=\"token punctuation\">,</span> amount <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">it</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">setAmount 검증 (초기 금액: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>initialAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">) => calculator.amount: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>amount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">setAmount</span><span class=\"token punctuation\">(</span>initialAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>amount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>amount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">// plus 버튼 테스트</span>\n  <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">12000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">15000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">2000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">15000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">20000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">3000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">20000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">22000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">3000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">50000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">55000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">8000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">55000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">60000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">9000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">100000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">110000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">16500</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">990000</span><span class=\"token punctuation\">,</span> nextAmount<span class=\"token operator\">:</span> <span class=\"token number\">1000000</span><span class=\"token punctuation\">,</span> nextBonus<span class=\"token operator\">:</span> <span class=\"token number\">150000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> initialAmount<span class=\"token punctuation\">,</span> nextAmount<span class=\"token punctuation\">,</span> nextBonus <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">it</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">plus 검증 (초기 금액: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>initialAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">) => </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>nextAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원  (+</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>nextBonus<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원 적립)</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">setAmount</span><span class=\"token punctuation\">(</span>initialAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">plus</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>amount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>nextAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>bonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>nextBonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">// minus 버튼 테스트</span>\n  <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">15000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">12000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">1500</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">20000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">15000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">2000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">22000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">20000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">3000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">55000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">50000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">7500</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">60000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">55000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">8000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">110000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">100000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">15000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">1000000</span><span class=\"token punctuation\">,</span> prevAmount<span class=\"token operator\">:</span> <span class=\"token number\">990000</span><span class=\"token punctuation\">,</span> prevBonus<span class=\"token operator\">:</span> <span class=\"token number\">148500</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> initialAmount<span class=\"token punctuation\">,</span> prevAmount<span class=\"token punctuation\">,</span> prevBonus <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">it</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">minus 검증 (초기 금액: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>initialAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">) => </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>prevAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원  (+</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>prevBonus<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원 적립)</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">setAmount</span><span class=\"token punctuation\">(</span>initialAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">minus</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>amount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>prevAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>bonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>prevBonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">// get bonus() 테스트</span>\n  <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">12000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">1500</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">15000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">2000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">20000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">3000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">55000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">8000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">95000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">14000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">{</span> initialAmount<span class=\"token operator\">:</span> <span class=\"token number\">1000000</span><span class=\"token punctuation\">,</span> bonus<span class=\"token operator\">:</span> <span class=\"token number\">150000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> initialAmount<span class=\"token punctuation\">,</span> bonus <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">it</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">bonus 검증 (초기 금액: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>initialAmount<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">) => +</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>bonus<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">원 적립</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n      calculator<span class=\"token punctuation\">.</span><span class=\"token function\">setAmount</span><span class=\"token punctuation\">(</span>initialAmount<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">expect</span><span class=\"token punctuation\">(</span>calculator<span class=\"token punctuation\">.</span>bonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toBe</span><span class=\"token punctuation\">(</span>bonus<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>총 4개의 테스트를 작성해보았다. 충전금을 설정하는 <strong>setAmount</strong> 테스트, 충전금을 추가하기 위한 <strong>plus</strong> 테스트, 빼기 위한 <strong>minus</strong> 테스트, 그리고 충전금에 대한 <strong>보너스(적립금)</strong>에 대한 테스트이다. </p>\n<br>\n<h5 id=\"테스트-코드를-작성해야하는-이유\" style=\"position:relative;\"><a href=\"#%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0\" aria-label=\"테스트 코드를 작성해야하는 이유 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>테스트 코드를 작성해야하는 이유</h5>\n<ul>\n<li>\n<p>모두를 위한 배려</p>\n<ul>\n<li>인간은 망각의 동물이다. 본인이 작성한 코드도 하루 이틀 지나면 헷갈리기 마련이다. 나도 기억하고 동료를 위해 필요하다.</li>\n</ul>\n</li>\n<li>\n<p>코드 명세</p>\n<ul>\n<li>코드를 파악할 때 왜 이 코드를 짰는지 알 수 있는 안내판이 되기도한다고 생각한다. 이 함수가, 이 값이 반드시 가져야하는 결과값이 무엇인지 유추가 가능하다.</li>\n</ul>\n</li>\n<li>\n<p>리팩토링할 때 유용하다.</p>\n<ul>\n<li>로직을 바꿔야하거나, 레거시를 제거해야할 때 중요한 코드는 건드리기 무섭다. ‘잘 되던 코드가 나 때문에 안 되면 어떡하지?’, ‘이거 지워도 되는 코드인가. 분명히 이유가 있을 거 같은데..‘. 리팩토링할 때 항상 드는 고민인 것 같다. 테스트 코드는 이러한 시행 착오를 줄여줄 수 있다고 본다.</li>\n</ul>\n</li>\n<li>\n<p>테스트가 가능하다</p>\n<ul>\n<li>TDD로 코드를 작성하게 되면, 반대로 어떻게 코드를 작성해야하는지 제약을 주기 때문에, 제한된 규칙 내에서 코드를 작성할 수 있다. 마치 타입을 정의하고 코드를 작성하는 것과 비슷한 논리라고 생각한다.</li>\n</ul>\n</li>\n</ul>","frontmatter":{"title":"[Angular] Unit Test","date":"September 28, 2020"}}},"pageContext":{"slug":"/Test/[Angular]_unit_test/","previous":{"fields":{"slug":"/Today I Learned/css_touch-action/"},"frontmatter":{"title":"css touch-action","category":"Today I Learned","draft":false}},"next":{"fields":{"slug":"/TypeScript/인터페이스/"},"frontmatter":{"title":"인터페이스","category":"TypeScript","draft":false}}}},"staticQueryHashes":["3128451518","96099027"]}